Refactored the environment variables to use a HUGINN_ prefix

Ian Blenke 9 years ago
parent
commit
df8440d953
2 changed files with 107 additions and 84 deletions
  1. 62 49
      docker/README.md
  2. 45 35
      docker/scripts/init

+ 62 - 49
docker/README.md

@@ -27,9 +27,9 @@ There is an exported docker volume of /var/lib/mysql to allow persistence of tha
27 27
 
28 28
 Additionally, the database variables may be overridden from the above as per the standard Huginn documentation:
29 29
 
30
-    DATABASE_ADAPTER #(must be either 'postgres' or 'mysql2')
31
-    DATABASE_HOST
32
-    DATABASE_PORT
30
+    HUGINN_DATABASE_ADAPTER #(must be either 'postgres' or 'mysql2')
31
+    HUGINN_DATABASE_HOST
32
+    HUGINN_DATABASE_PORT
33 33
 
34 34
 This script will run database migrations (rake db:migrate) which should be idempotent.
35 35
 
@@ -52,15 +52,15 @@ Simple stand-alone usage:
52 52
 To link to another mysql container, for example:
53 53
 
54 54
     docker run --rm --name newcentury_mysql -p 3306 \
55
-        -e MYSQL_DATABASE=huginn \
56
-        -e MYSQL_USER=huginn \
57
-        -e MYSQL_PASSWORD=somethingsecret \
58
-        -e MYSQL_ROOT_PASSWORD=somethingevenmoresecret \
55
+        -e HUGINN_MYSQL_DATABASE=huginn \
56
+        -e HUGINN_MYSQL_USER=huginn \
57
+        -e HUGINN_MYSQL_PASSWORD=somethingsecret \
58
+        -e HUGINN_MYSQL_ROOT_PASSWORD=somethingevenmoresecret \
59 59
         cantino/huginn
60 60
     docker run --rm --name huginn --link newcentury_mysql:MYSQL -p 5000:5000 \
61
-        -e DATABASE_NAME=huginn \
62
-        -e DATABASE_USER=huginn \
63
-        -e DATABASE_PASSWORD=somethingsecret \
61
+        -e HUGINN_DATABASE_NAME=huginn \
62
+        -e HUGINN_DATABASE_USER=huginn \
63
+        -e HUGINN_DATABASE_PASSWORD=somethingsecret \
64 64
         cantino/huginn
65 65
 
66 66
 To link to another container named 'postgres':
@@ -69,45 +69,58 @@ To link to another container named 'postgres':
69 69
 
70 70
 ## Environment Variables
71 71
 
72
-Other Huginn 12factored environment variables of note, as generated and put into the .env file as per Huginn documentation:
73
-
74
-    APP_SECRET_TOKEN=${APP_SECRET_TOKEN:-CHANGEME}
75
-    DOMAIN=${HUGINN_HOST:-localhost}:${PORT:-5000}
76
-    ${ASSET_HOST:+ASSET_HOST=${ASSET_HOST}}
77
-    DATABASE_ADAPTER=${DATABASE_ADAPTER:-mysql2}
78
-    DATABASE_ENCODING=${DATABASE_ENCODING:-utf8}
79
-    DATABASE_RECONNECT=${DATABASE_RECONNECT:-true}
80
-    DATABASE_NAME=${DATABASE_NAME:-huginn}
81
-    DATABASE_POOL=${DATABASE_POOL:-5}
82
-    DATABASE_USERNAME=${DATABASE_USERNAME:-root}
83
-    DATABASE_PASSWORD="${DATABASE_PASSWORD}"
84
-    DATABASE_PORT=${DATABASE_PORT:-3306}
85
-    DATABASE_HOST=${DATABASE_HOST:-localhost}
86
-    DATABASE_PORT=${DATABASE_PORT:-3306}
87
-    ${DATABASE_SOCKET:+DATABASE_SOCKET=${DATABASE_SOCKET:-/tmp/mysql.sock}}
88
-    ${RAILS_ENV:+RAILS_ENV=${RAILS_ENV:-production}}
89
-    FORCE_SSL=${FORCE_SSL:-false}
90
-    INVITATION_CODE=${INVITATION_CODE:-try-huginn}
91
-    SMTP_DOMAIN=${SMTP_DOMAIM=-example.com}
92
-    SMTP_USER_NAME=${SMTP_USER_NAME:-you@gmail.com}
93
-    SMTP_PASSWORD=${SMTP_PASSWORD:-somepassword}
94
-    SMTP_SERVER=${SMTP_SERVER:-smtp.gmail.com}
95
-    SMTP_PORT=${SMTP_PORT:-587}
96
-    SMTP_AUTHENTICATION=${SMTP_AUTHENTICATION:-plain}
97
-    SMTP_ENABLE_STARTTLS_AUTO=${SMTP_ENABLE_STARTTLS_AUTO:-true}
98
-    EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS:-huginn@example.com}
99
-    AGENT_LOG_LENGTH=${AGENT_LOG_LENGTH:-200}
100
-    AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID:-your aws access key id}"
101
-    AWS_ACCESS_KEY="${AWS_ACCESS_KEY:-your aws access key}"
102
-    AWS_SANDBOX=${AWS_SANDBOX:-false}
103
-    FARADAY_HTTP_BACKEND=${FARADAY_HTTP_BACKEND:-typhoeus}
104
-    DEFAULT_HTTP_USER_AGENT="${DEFAULT_HTTP_USER_AGENT:-Huginn - https://github.com/cantino/huginn}"
105
-    ALLOW_JSONPATH_EVAL=${ALLOW_JSONPATH_EVAL:-false}
106
-    ENABLE_INSECURE_AGENTS=${ENABLE_INSECURE_AGENTS:-false}
107
-    ${USE_GRAPHVIZ_DOT:+USE_GRAPHVIZ_DOT=${USE_GRAPHVIZ_DOT:-dot}}
108
-    TIMEZONE="${TIMEZONE:-Pacific Time (US & Canada)}"
109
-
110
-The defaults used are the Huginn defaults as per the [.env.example](https://github.com/cantino/huginn/blob/master/.env.example) file.
72
+Other Huginn 12factored environment variables of note, as generated and put into the .env file as per Huginn documentation,
73
+with an additional `HUGINN_` prefix to the variable.
74
+
75
+These are:
76
+
77
+    HUGINN_APP_SECRET_TOKEN
78
+    HUGINN_DOMAIN
79
+    HUGINN_ASSET_HOST
80
+    HUGINN_DATABASE_ADAPTER
81
+    HUGINN_DATABASE_ENCODING
82
+    HUGINN_DATABASE_RECONNECT
83
+    HUGINN_DATABASE_NAME
84
+    HUGINN_DATABASE_POOL
85
+    HUGINN_DATABASE_USERNAME
86
+    HUGINN_DATABASE_PASSWORD
87
+    HUGINN_DATABASE_HOST
88
+    HUGINN_DATABASE_PORT
89
+    HUGINN_DATABASE_SOCKET
90
+    HUGINN_RAILS_ENV
91
+    HUGINN_FORCE_SSL
92
+    HUGINN_INVITATION_CODE
93
+    HUGINN_SMTP_DOMAIM
94
+    HUGINN_SMTP_USER_NAME
95
+    HUGINN_SMTP_PASSWORD
96
+    HUGINN_SMTP_SERVER
97
+    HUGINN_SMTP_PORT
98
+    HUGINN_SMTP_AUTHENTICATION
99
+    HUGINN_SMTP_ENABLE_STARTTLS_AUTO
100
+    HUGINN_EMAIL_FROM_ADDRESS
101
+    HUGINN_AGENT_LOG_LENGTH
102
+    HUGINN_TWITTER_OAUTH_KEY
103
+    HUGINN_TWITTER_OAUTH_SECRET
104
+    HUGINN_THIRTY_SEVEN_SIGNALS_OAUTH_KEY
105
+    HUGINN_THIRTY_SEVEN_SIGNALS_OAUTH_SECRET
106
+    HUGINN_GITHUB_OAUTH_KEY
107
+    HUGINN_GITHUB_OAUTH_SECRET
108
+    HUGINN_AWS_ACCESS_KEY_ID
109
+    HUGINN_AWS_ACCESS_KEY
110
+    HUGINN_AWS_SANDBOX
111
+    HUGINN_FARADAY_HTTP_BACKEND
112
+    HUGINN_DEFAULT_HTTP_USER_AGENT
113
+    HUGINN_ALLOW_JSONPATH_EVAL
114
+    HUGINN_ENABLE_INSECURE_AGENTS
115
+    HUGGIN_ENABLE_SECOND_PRECISION_SCHEDULE
116
+    HUGINN_USE_GRAPHVIZ_DOT
117
+    HUGINN_TIMEZONE
118
+    HUGGIN_FAILED_JOBS_TO_KEEP
119
+
120
+
121
+The above environment variables will override the defaults. The defaults are read from the [.env.example](https://github.com/cantino/huginn/blob/master/.env.example) file.
122
+
123
+For variables in the .env.example that are commented out, the default is to not include that variable in the generated .env file.
111 124
 
112 125
 ## Building on your own
113 126
 

+ 45 - 35
docker/scripts/init

@@ -3,6 +3,9 @@ set -e
3 3
 
4 4
 cd /app
5 5
 
6
+# Default to the environment variable values set in .env.example
7
+source /app/.env.example
8
+
6 9
 # is a mysql or postgresql database linked?
7 10
 # requires that the mysql or postgresql containers have exposed
8 11
 # port 3306 and 5432 respectively.
@@ -17,41 +20,48 @@ elif [ -n "${POSTGRESQL_PORT_5432_TCP_ADDR}" ]; then
17 20
 fi
18 21
 
19 22
 cat <<EOF > /app/.env
20
-APP_SECRET_TOKEN=${APP_SECRET_TOKEN:-CHANGEME}
21
-DOMAIN=${DOMAIN:+${HUGINN_HOST:-localhost}:${PORT:-5000}}
22
-${ASSET_HOST:+ASSET_HOST=${ASSET_HOST}}
23
-DATABASE_ADAPTER=${DATABASE_ADAPTER:-mysql2}
24
-DATABASE_ENCODING=${DATABASE_ENCODING:-utf8}
25
-DATABASE_RECONNECT=${DATABASE_RECONNECT:-true}
26
-DATABASE_NAME=${DATABASE_NAME:-huginn}
27
-DATABASE_POOL=${DATABASE_POOL:-5}
28
-DATABASE_USERNAME=${DATABASE_USERNAME:-root}
29
-DATABASE_PASSWORD="${DATABASE_PASSWORD}"
30
-DATABASE_PORT=${DATABASE_PORT:-3306}
31
-DATABASE_HOST=${DATABASE_HOST:-localhost}
32
-DATABASE_PORT=${DATABASE_PORT:-3306}
33
-${DATABASE_SOCKET:+DATABASE_SOCKET=${DATABASE_SOCKET:-/tmp/mysql.sock}}
34
-${RAILS_ENV:+RAILS_ENV=${RAILS_ENV:-production}}
35
-FORCE_SSL=${FORCE_SSL:-false}
36
-INVITATION_CODE=${INVITATION_CODE:-try-huginn}
37
-SMTP_DOMAIN=${SMTP_DOMAIM=-example.com}
38
-SMTP_USER_NAME=${SMTP_USER_NAME:-you@gmail.com}
39
-SMTP_PASSWORD=${SMTP_PASSWORD:-somepassword}
40
-SMTP_SERVER=${SMTP_SERVER:-smtp.gmail.com}
41
-SMTP_PORT=${SMTP_PORT:-587}
42
-SMTP_AUTHENTICATION=${SMTP_AUTHENTICATION:-plain}
43
-SMTP_ENABLE_STARTTLS_AUTO=${SMTP_ENABLE_STARTTLS_AUTO:-true}
44
-EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS:-huginn@example.com}
45
-AGENT_LOG_LENGTH=${AGENT_LOG_LENGTH:-200}
46
-AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID:-your aws access key id}"
47
-AWS_ACCESS_KEY="${AWS_ACCESS_KEY:-your aws access key}"
48
-AWS_SANDBOX=${AWS_SANDBOX:-false}
49
-FARADAY_HTTP_BACKEND=${FARADAY_HTTP_BACKEND:-typhoeus}
50
-DEFAULT_HTTP_USER_AGENT="${DEFAULT_HTTP_USER_AGENT:-Huginn - https://github.com/cantino/huginn}"
51
-ALLOW_JSONPATH_EVAL=${ALLOW_JSONPATH_EVAL:-false}
52
-ENABLE_INSECURE_AGENTS=${ENABLE_INSECURE_AGENTS:-false}
53
-${USE_GRAPHVIZ_DOT:+USE_GRAPHVIZ_DOT=${USE_GRAPHVIZ_DOT:-dot}}
54
-TIMEZONE="${TIMEZONE:-Pacific Time (US & Canada)}"
23
+APP_SECRET_TOKEN=${HUGINN_APP_SECRET_TOKEN:-$APP_SECRET_TOKEN}
24
+DOMAIN=${HUGINN_DOMAIN:-$DOMAIN}
25
+${ASSET_HOST:+ASSET_HOST=${HUGINN_ASSET_HOST:-$ASSET_HOST}}
26
+DATABASE_ADAPTER=${HUGINN_DATABASE_ADAPTER:-$DATABASE_ADAPTER}
27
+DATABASE_ENCODING=${HUGINN_DATABASE_ENCODING:-$DATABASE_ENCODING}
28
+DATABASE_RECONNECT=${HUGINN_DATABASE_RECONNECT:-$DATABASE_RECONNECT}
29
+DATABASE_NAME=${HUGINN_DATABASE_NAME:-$DATABASE_NAME}
30
+DATABASE_POOL=${HUGINN_DATABASE_POOL:-$DATABASE_POOL}
31
+DATABASE_USERNAME=${HUGINN_DATABASE_USERNAME:-$DATABASE_USERNAME}
32
+DATABASE_PASSWORD="${HUGINN_DATABASE_PASSWORD:-$DATABASE_PASSWORD}"
33
+DATABASE_HOST=${HUGINN_DATABASE_HOST:-${DATABASE_HOST:-localhost}}
34
+DATABASE_PORT=${HUGINN_DATABASE_PORT:-${DATABASE_PORT:-3306}}
35
+${HUGINN_DATABASE_SOCKET:+DATABASE_SOCKET=${HUGINN_DATABASE_SOCKET}}
36
+${HUGINN_RAILS_ENV:+RAILS_ENV=${HUGINN_RAILS_ENV}}
37
+FORCE_SSL=${HUGINN_FORCE_SSL:-$FORCE_SSL}
38
+INVITATION_CODE=${HUGINN_INVITATION_CODE:-$INVITATION_CODE}
39
+SMTP_DOMAIN=${HUGINN_SMTP_DOMAIM:-$SMTP_DOMAIN}
40
+SMTP_USER_NAME=${HUGINN_SMTP_USER_NAME:-$SMTP_USER_NAME}
41
+SMTP_PASSWORD=${HUGINN_SMTP_PASSWORD:-$SMTP_PASSWORD}
42
+SMTP_SERVER=${HUGINN_SMTP_SERVER:-$SMTP_SERVER}
43
+SMTP_PORT=${HUGINN_SMTP_PORT:-$SMTP_PORT}
44
+SMTP_AUTHENTICATION=${HUGINN_SMTP_AUTHENTICATION:-$SMTP_AUTHENTICATION}
45
+SMTP_ENABLE_STARTTLS_AUTO=${HUGINN_SMTP_ENABLE_STARTTLS_AUTO:-$SMTP_ENABLE_STARTTLS_AUTO}
46
+EMAIL_FROM_ADDRESS=${HUGINN_EMAIL_FROM_ADDRESS:-$EMAIL_FROM_ADDRESS}
47
+AGENT_LOG_LENGTH=${HUGINN_AGENT_LOG_LENGTH:-$AGENT_LOG_LENGTH}
48
+TWITTER_OAUTH_KEY=${HUGINN_TWITTER_OAUTH_KEY:-$TWITTER_OAUTH_KEY}
49
+TWITTER_OAUTH_SECRET=${HUGINN_TWITTER_OAUTH_SECRET:-$TWITTER_OAUTH_SECRET}
50
+THIRTY_SEVEN_SIGNALS_OAUTH_KEY=${HUGINN_THIRTY_SEVEN_SIGNALS_OAUTH_KEY:-$THIRTY_SEVEN_SIGNALS_OAUTH_KEY}
51
+THIRTY_SEVEN_SIGNALS_OAUTH_SECRET=${HUGINN_THIRTY_SEVEN_SIGNALS_OAUTH_SECRET:-$THIRTY_SEVEN_SIGNALS_OAUTH_SECRET}
52
+GITHUB_OAUTH_KEY=${HUGINN_GITHUB_OAUTH_KEY:-$GITHUB_OAUTH_KEY}
53
+GITHUB_OAUTH_SECRET=${HUGINN_GITHUB_OAUTH_SECRET:-$GITHUB_OAUTH_SECRET}
54
+AWS_ACCESS_KEY_ID="${HUGINN_AWS_ACCESS_KEY_ID:-$AWS_ACCESS_KEY_ID}"
55
+AWS_ACCESS_KEY="${HUGINN_AWS_ACCESS_KEY:-$AWS_ACCESS_KEY}"
56
+AWS_SANDBOX=${HUGINN_AWS_SANDBOX:-$AWS_SANDBOX}
57
+FARADAY_HTTP_BACKEND=${HUGINN_FARADAY_HTTP_BACKEND:-$FARADAY_HTTP_BACKEND}
58
+DEFAULT_HTTP_USER_AGENT=${HUGINN_DEFAULT_HTTP_USER_AGENT:-$DEFAULT_HTTP_USER_AGENT}
59
+ALLOW_JSONPATH_EVAL=${HUGINN_ALLOW_JSONPATH_EVAL:-$ALLOW_JSONPATH_EVAL}
60
+ENABLE_INSECURE_AGENTS=${HUGINN_ENABLE_INSECURE_AGENTS:-$HUGINN_ENABLE_INSECURE_AGENTS}
61
+ENABLE_SECOND_PRECISION_SCHEDULE=${HUGGIN_ENABLE_SECOND_PRECISION_SCHEDULE:-$ENABLE_SECOND_PRECISION_SCHEDULE}
62
+${HUGINN_USE_GRAPHVIZ_DOT:+USE_GRAPHVIZ_DOT=${HUGINN_USE_GRAPHVIZ_DOT}}
63
+TIMEZONE="${HUGINN_TIMEZONE:-$TIMEZONE}"
64
+FAILED_JOBS_TO_KEEP=${HUGGIN_FAILED_JOBS_TO_KEEP:-$FAILED_JOBS_TO_KEEP}
55 65
 EOF
56 66
 chmod ugo+r /app/.env
57 67
 source /app/.env